layui.define(['jquery'], function (exports) {
    var $ = layui.jquery;

    var index;

    function ityzl_SHOW_LOAD_LAYER() {
        return layer.msg('努力中...', {icon: 16, shade: [0.5, '#f5f5f5'], scrollbar: false, offset: '0px', time: 100000});
    }

    var obj = {
        /**
         * 通用Ajax请求方法
         * @param options 请求参数, 如果指定了success，则不用传递callback参数
         * @param callback 成功后的回调函数
         * @param isClose 是否关闭弹出层, 用于关闭layer.open
         */
        ajax: function (options, callback, isClose) {
            var ajaxConfig = {
                url: '',
                data: {},
                type: 'POST',
                dataType: 'json',
                beforeSend: function () {

                },
                error: function (data) {
                    layer.alert("请求错误!");
                },
                success: function (res) {
                    if (res.responseCode == '200') {
                        if (typeof callback === "function") {
                            callback(res);
                        }
                        layer.msg(res.responseMsg, {time: 500});
                    } else {
                        layer.alert(res.responseMsg);
                    }
                }
            };
            var ajaxSuccess = {
                success: function (res) {
                    if (res.responseCode == '200') {
                        if (typeof callback === "function") {
                            callback(res);
                        }
                        parent.layer.msg(res.responseMsg, {time: 500});
                        //注意这两句
                        var index = parent.layer.getFrameIndex(window.name);///先得到当前iframe层的索引
                        parent.layer.close(index);////再执行关闭，保存、修改页面完成时要获取当前页面并关闭回到上级页面（list页面）起到刷新返回功能
                    } else {
                        parent.layer.alert(res.responseMsg)
                    }
                }
            };

            $.extend(ajaxConfig, options);
            if (isClose) {
                $.extend(ajaxConfig, ajaxSuccess);
            }

            $.ajax(ajaxConfig);
        },
        /**
         * 通用表单ajax请求方法
         * @param formID 表单id
         * @param options 参数列表, 如果指定了success，则不用传递callback参数
         * @param callback 成功后的回调函数
         * @param isClose 是否关闭弹出层, 用于关闭layer.open
         */
        ajaxSubmit: function (formID, options, callback, isClose, completeback) {
            var ajaxSubmitConfig = {
                dataType: 'json',
                beforeSubmit: function () {
                    index = ityzl_SHOW_LOAD_LAYER();
                },
                error: function (data) {
                    layer.close(index);
                    layer.alert("请求错误!");
                },
                success: function (res) {
                    layer.close(index);
                    if (res.responseCode == '200') {
                        if (typeof callback === "function") {
                            callback(res);
                        }
                        layer.msg(res.responseMsg, {time: 500});
                    } else {
                        layer.alert(res.responseMsg);
                    }
                },
                complete: function (res) {
                    if (typeof completeback === "function") {
                        completeback(res);
                    }
                }
            };
            var ajaxSuccess = {
                success: function (res) {
                    layer.close(index);
                    if (res.responseCode == '200') {
                        if (typeof callback === "function") {
                            callback(res);
                        }
                        parent.layer.msg(res.responseMsg, {time: 500});
                        //先得到当前iframe层的索引,再执行关闭，保存、修改页面完成时要获取当前页面并关闭回到上级页面（list页面）起到刷新返回功能
                        parent.layer.close(parent.layer.getFrameIndex(window.name));
                    } else {
                        parent.layer.alert(res.responseMsg)
                    }
                }
            };

            $.extend(ajaxSubmitConfig, options);
            if (isClose) {
                $.extend(ajaxSubmitConfig, ajaxSuccess);
            }

            $("#" + formID).ajaxSubmit(ajaxSubmitConfig);
        },
        /**
         * 通用打开方法
         * @param options 参数
         * @param subbtn 表单按钮的id
         */
        open: function (options, subbtn) {
            var config = {
                type: 2,
                title: '新增/修改',
                area: ['400px', '300px'],
                content: '',
                fixed: false,
                shade: '0.3',
                btnAlign: 'c',
                btn: ['保存', '取消'],
                yes: function (index, layero) {
                    $(layero).find("iframe")[0].contentWindow.document.getElementById(subbtn).click();
                }
            };
            $.extend(config, options);
            layer.open(config);
        }
    };
    //输出接口
    exports('common', obj);
});